-- cmd
local osType = os.getenv("os") or os.getenv("OS_TYPE")
if osType and string.match(osType, "Window") then
	vim.cmd("set shell=pwsh")
end

-- 不显示启动画面
--vim.o.shortmess = vim.o.shortmess .. "sI"

-- 字例编码
vim.g.encoding = "UTF-8"
vim.o.fileencoding = "UTF-8"

-- jkhl 移动时光标周围保留8行
vim.o.scrolloff = 8
vim.o.sidescrolloff = 8

-- 实例显示10行
vim.wo.number = true

-- 使用相对行号
vim.wo.relativenumber = true

-- 高亮所在行
vim.wo.cursorline = true

-- 显示左边图标指示列
vim.wo.signcolumn = "yes"

-- 右侧参考线
vim.wo.colorcolumn = "160"

-- 缩进字符
vim.o.tabstop = 4
vim.bo.tabstop = 4
vim.o.softtabstop = 4
vim.o.shiftround = true

-- << >> 时移动长度
vim.o.shiftwidth = 4
vim.bo.shiftwidth = 4

-- 空格替代
vim.o.expandtab = true
vim.bo.expandtab = true

-- 新行对齐当前行
vim.o.autoindent = true
vim.bo.autoindent = true
vim.o.smartindent = true

-- 搜索不要高亮
vim.o.hlsearch = false
vim.o.incsearch = true

-- 搜索大小写不敏感，除非包含大小写
vim.o.ignorecase = true
vim.o.smartcase = true

-- 自动加载外部修改
vim.o.autoread = true
vim.bo.autoread = true

-- 禁止拆行
vim.wo.wrap = false

-- 光标在行乎尾时<left><right>可以跳到下一行
vim.o.whichwrap = "<,>,[,]"

-- 鼠标支持
vim.o.mouse = "a"

-- 自动补全不自动选中
vim.g.completopt = "menu,menuone,noselect,noinsert"

-- 样式
vim.o.background = "dark"
vim.o.termguicolors = true
vim.opt.termguicolors = true

-- 不可见字符的显示
vim.o.list = false
vim.o.listchars = "space:.,tab:>-"

vim.o.wildmenu = true

vim.o.shortmess = vim.o.shortmess .. "C"

-- 实例显示10行
vim.o.pumheight = 10
vim.o.clipboard = "unnamedplus"

-- 注册文件类型
if not vim.filetype.match({ filename = "cangjie" }) then
    vim.filetype.add({
        extension = { cj = "cangjie" },
    })
end

-- bootstrap lazy.nvim and your plugins
require("config.options")
require("config.lazy")
require("config.keymaps")